Skip to content

Conversation

taraa
Copy link
Member

@taraa taraa commented Oct 7, 2026 •

Beskrivelse

Denne PR-en legger til GraphQL-spørringer og resolvere for produkter og kategorier i backend.
Hensikten er å erstatte den midlertidige hello-queryen med faktiske spørringer mot databasen, slik at frontend senere kan hente produkter, søke etter produkter og hente kategorier.

Relaterte issues

Closes #13

Endringer gjort

  • Lagt til GraphQL-typer for Product, Category og Price
  • Lagt til query for å hente flere produkter
  • Lagt til søk på produktnavn
  • Lagt til filtrering på kategori
  • Lagt til limit og offset
  • Lagt til query for å hente ett produkt basert på EAN
  • Lagt til query for å hente kategorier
  • Lagt til resolvere for produktets kategori og priser
  • Koblet resolverne mot PostgreSQL-databasen
  • Brukt parameteriserte SQL-spørringer

Hva slags type fiks inneholder denne PR

  • Bug fix
  • Ny funksjonalitet
  • Refactor
  • Dokumentasjon
  • Testing

Sjekkliste

  • Testet lokalt
  • Dokumentert endringer
  • Sjekket for feilmeldinger

Testing

Products(limit: 3)

curl -s http://localhost:3001/ \
-H 'Content-Type: application/json' \
-d '{"query":"{ products(limit: 3) { name ean } }"}'

{"data":{"products":[

{"name":"Ammeinnlegg 50stk Lillego","ean":"7035620043635"},

{"name":"Ananas i Biter i Juice 3x227g Eldorado","ean":"7311040056944"},

{"name":"Ananas i Biter i Juice 565g First Price","ean":"7311041013625"}]}}

image

products(search: "melk", limit: 5)

curl -s http://localhost:3001/ \

-H 'Content-Type: application/json' \

-d '{"query":"{ products(search: "melk", limit: 5) { name ean } }"}'

{"data":{"products":[

{"name":"Freia Melkesjokolade Sjokoladeis 6stk Hennig-Olsen","ean":"7041013200110"}]}}

image

categories { id name }

curl -s http://localhost:3001/ \

-H 'Content-Type: application/json' \

-d '{"query":"{ categories { id name } }"}'

{"data":{"categories":[{"id":"1216","name":"Ammeinnlegg"},{"id":"607","name":"Babyartikler"},{"id":"1061","name":"Babyolje"},{"id":"17","name":"Babypleie"},{"id":"1130","name":"Babysåpe"},{"id":"768","name":"Babyshampo"},{"id":"7","name":"Bananer"},{"id":"926","name":"Barberhøvel"},{"id":"378","name":"Barbering"},{"id":"772","name":"Barnebestikk"},{"id":"25","name":"Barnedessert"},{"id":"124","name":"Barnegrøt"},{"id":"239","name":"Barnekjeks"},{"id":"81","name":"Barnemat"},{"id":"16","name":"Barneprodukter"},{"id":"4465","name":"Bleieposer"},{"id":"730","name":"Bleier"},{"id":"953","name":"Bringebærsaus"},{"id":"6","name":"Brun saus"},{"id":"750","name":"Creme brulee"}, .... (mange mange flere).
image

Teste en ekte EAN fra FirstPrice Ananas juice

curl -s http://localhost:3001/ \

-H 'Content-Type: application/json' \

-d '{"query":"{ product(ean: "7311041013625") { name } }"}'

{"data":{"product":{"name":"Ananas i Biter i Juice 565g First Price"}}}
image

Teste ukjent EAN

curl -s http://localhost:3001/ \

-H 'Content-Type: application/json' \

-d '{"query":"{ product(ean: "999999999999999999") { name } }"}'

{"data":{"product":null}}

image

Skjermbilder

Endringene er kun i backend, så lagt til skjermbilder over som er relevant for testingen.

lindeav and others added 7 commits October 5, 2026 13:43
…a-og-readme-med-priser-fra-flere-dagligvarekjeder

Oppdatert figma design + skjermflyt i README
feat: import and seed Kassalapp data (#8)

Dette ser bra ut. Fint at import og seed er delt opp, at data kan seedes uten API-nøkkel, og at både rate limiting, manglende EAN/kategori og duplikater er håndtert på en ryddig måte. Ser også bra ut at seedingen kan kjøres flere ganger med ON CONFLICT.
chore: add minimum product count check for issue #8

Fint å ha 100 000 produkter å jobbe med, spesielt når vi hadde satt krav for minst 20 000. Godt jobbet!
@taraa taraa requested a review from a team as a code owner October 7, 2026 08:57
@taraa taraa linked an issue Oct 7, 2026 that may be closed by this pull request
3 tasks
Copy link
Member

@annisaam annisaam left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ser bra ut!

Alle tre spørringene (products, product(ean) og categories) er på plass, og testene dine viser at de returnerer riktig data fra databasen.

Bra at du brukte parametriserte SQL-spørringer, og at ukjent EAN gir null. Dette dekker det issue #13 ber om.

@annisaam annisaam merged commit 1828620 into main Oct 8, 2026
@annisaam annisaam deleted the 13-task-graphql-skjema-og-resolvere-for-varer-og-kategorier branch October 8, 2026 18:50
Sign in to join this conversation on GitHub.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

task: GraphQL-skjema og resolvere for varer og kategorier
4 participants